gusucode.com > MATLAB神经网络多个案例分析及详细源代码 > 源程序/案例3 遗传算法优化BP神经网络-非线性函数拟合/Select.m

    function ret=select(individuals,sizepop)
% 该函数用于进行选择操作
% individuals input    种群信息
% sizepop     input    种群规模
% ret         output   选择后的新种群

%求适应度值倒数   
fitness1=10./individuals.fitness; %individuals.fitness为个体适应度值

%个体选择概率
sumfitness=sum(fitness1);
sumf=fitness1./sumfitness;

%采用轮盘赌法选择新个体
index=[]; 
for i=1:sizepop   %sizepop为种群数
    pick=rand;
    while pick==0    
        pick=rand;        
    end
    for i=1:sizepop    
        pick=pick-sumf(i);        
        if pick<0        
            index=[index i];            
            break;  
        end
    end
end

%新种群
individuals.chrom=individuals.chrom(index,:);   %individuals.chrom为种群中个体
individuals.fitness=individuals.fitness(index);
ret=individuals;